import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String s1 = in.next();
            String s2 = in.next();
            int len1 = s1.length();
            int len2 = s2.length();
            int[][] dp = new int[len1+1][len2+1];
            for (int i = 1; i <= len1; i++) {
                dp[i][0] = i;
            }
            for (int j = 1; j <= len2; j++) {
                dp[0][j] = j;
            }

            for (int i = 1; i <= len1; i++) {
                for (int j = 1; j <= len2; j++) {
                    if (s1.charAt(i-1) == s2.charAt(j-1)) {
                        // 当前字符相等, 那么就是 dp[i-1[j-1]
                        dp[i][j] = dp[i-1][j-1];
                    } else {
                        // 不相等
                        // 取 左边, 上边, 左上角 三个中最小值 + 1
                        // 对应分别是: s1 添上一个字符, s2 添上一个字符, s1 s2 两者中的一个进行替换
                        int min = Math.min(Math.min(dp[i][j-1], dp[i-1][j]), dp[i-1][j-1]);
                        dp[i][j] = min + 1;
                    }
                }
            }
            System.out.println(dp[len1][len2]);
        }
    }
}